﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessLayer.Model.Entities;

namespace BusinessLayer.Model.Services.Abstract
{
    /// <summary>
    /// Interface que define los métodos que debe implementar el servicio de twitter
    /// El servicio de twitter se encarga de manejar los datos de la cuenta de twitter para
    /// ser usado en la aplicación, y se encarga de postear las entradas de noticias.
    /// </summary>
    public interface ITwitterService
    {
        /// <summary>
        /// Obtiene la cuenta de twitter que usa la aplicación
        /// </summary>
        /// <returns>Cuenta de twitter</returns>
        TwitterAccount GetAccount();

        /// <summary>
        /// Cambia la contraseña de la cuenta de twitter
        /// </summary>
        /// <param name="newPassword">Contraseña nueva</param>
        void           ChangePassword(string newPassword);

        /// <summary>
        /// Cambia el nombre de usuario de la cuenta de twitter
        /// </summary>
        /// <param name="newAccount">Nombre de usuario nuevo</param>
        void           ChangeAccount(string newAccount);


        /// <summary>
        /// Realiza un post en twitter sobre la noticia especificada
        /// </summary>
        /// <param name="news">Noticia a postear</param>
        void           PostNews(News news);
    }
}
